﻿using Catalogo.Portable.DataSources;
using Catalogo.Portable.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Catalogo.Portable.ViewModel
{
    public enum TipoFlyoutTexto
    { 
        Sobre,
        Contato,
        PoliticaPrivacidade
    }

    public class FlyoutTextoViewModel : ViewModelBase
    {
        private Empresa _Empresa;
        public Empresa Empresa
        {
            get { return _Empresa; }
            set { SetProperty(ref this._Empresa, value); }
        }

        private string _Titulo;
        public string Titulo
        {
            get { return _Titulo; }
            set { SetProperty(ref this._Titulo, value); }
        }

        private string _Texto;
        public string Texto
        {
            get { return _Texto; }
            set { SetProperty(ref this._Texto, value); }
        }

        public async Task LoadAsync(TipoFlyoutTexto tipoFlyoutTexto)
        {
            Empresa = await CatalogoDataSource.Instance.ObterEmpresaAsync();
            
            switch (tipoFlyoutTexto)
            {
                case TipoFlyoutTexto.Sobre:
                    {
                        Titulo = "Sobre";
                        Texto = Empresa.SettingsSobre;
                    }
                    break;
                case TipoFlyoutTexto.Contato:
                    {
                        Titulo = "Contato";

                        var texto = Empresa.SettingsContato;
                        
                        texto = texto.Replace("#TELEFONE#", Empresa.TodosTelefones);
                        
                        if (!String.IsNullOrEmpty(Empresa.Website))
                        {
                            texto = texto.Replace("#URL#", Empresa.Website);
                        }
                        else
                        {
                            texto = texto.Replace("#URL#", string.Empty);
                        }

                        Texto = texto;
                    }
                    break;
                case TipoFlyoutTexto.PoliticaPrivacidade:
                    {
                        Titulo = "Política de privacidade";

                        Texto = Empresa.SettingsPolitica;
                    }
                    break;
            }
        }
    }
}
